ლიკა ჟვანია
თებერვალი-მარტი 2020, GeoLab - ჯეოლაბი
მონაცემთა ვიზუალიზაციის ძირითადი პრინციპები
ggplot2 პაკეტი
პრაქტიკული სამუშაო
The visual display of quantitat - “Most of all, the book, as a thing in itself, gave to me fresh new eyes for the intellectual and aesthetic joy of visual evidence, visual reasoning, and visual understanding.” - Edward (Rolf) Tufte
"წყარო:https://sites.psu.edu/julieludeman/2016/02/22/edward-tufte-the-da-vinci-of-data/
“Graphical methods of statistics”
წყარო: shorturl.at/brxBT
გრაფიკული გამოსახვა უნდა უნდა პასუხობდეს შემდეგ პრინციპებს:
• აჩვენებდეს მონაცემებს
• მნახველს/მაყურებელს „აიძულებდეს/უბიძგებდეს" იფიქროს მონაცემებზე, და არა მეთოდოლოგიაზე, გრაფიკულ დიზაინზე, გრაფიკული პროდუქტის ტექნიკაზე და ა.შ.
• თავიდან აიცილოს მონაცემების სათქმელის დამახინჯება
• წარმოადგინოს დიდი ოდენობით მონაცემი მცირე სივრცეში
• დიდი მონაცემთა ნაკრები გახადოს შეკავშირებული
• წაახალისოს თვალი, მონაცემთა სხვადასხვა ნაწილების შესადარებლად
• გამოავლინოს მონაცემები დეტალების რამდენიმე დონეზე
• ემსახუროს მკაფიო მიზანს: აღწერა, კვლევა/აღმოჩენა, შეჯამება, ცხრილების სახით წარმოდგენა, დეკორაცია
• ინტეგრირებული იყოს სტატისტიკურ და ვერბალურ აღწერილობასთან
წყარო: The visual display of quantitat, Edward Tufte
წყარო: The visual display of quantitate – Edward Tufte
ტაფტის თქმით, სტატისტიკური გრაფიკები (და ზოგადად სტატისტიკური გამოთვლები) იმდენად არის კარგი, რამდენადაც მასში ნაგულისხმევი შინაარსი. მცდარი ურთიერთკავშირები, ან აბსურდული მოდელები, ასევე მცირე/“უსუსური” მონაცემები შეუძლებელია გადმოიცეს გრაფიკების სახით, რაც არ უნდა ეფექტური გზით იყოს წარმოდგენილი.
ყალბი ასოციაციები მიუთითებს იმ გარემოებაზე, რომ შესაძლოა რიგი მოვლენები ემთხვეოდეს ერთმანეთს, მაგრამ არ იყვნენ ერთმანეთთან კავშირში. დროითი მწკრივების მონაცემები წარმოადგენს მნიშვნელოვან წყაროს ყალბი ასოციაციებისთვის. Richard Harrison – Quantitative Geography/ About Quantitative Geography/The Use and Abuse of Statistics/Spurious Associations
ყალბ ასოციაციებს შორის ზოგიერთი მათგანი შესაძლოა მეტად “მაცდუნებელია”. განსაკუთრებით მაშინ, როცა ისინი ეხმიანებიანწინასწარ შექმნილ წარმოდგენებს, წინასწარ შექმნილ აზრს ან შეხედულებეს.
წყარო: Richard Harrison – Quantitative Geography/ About Quantitative Geography/The Use and Abuse of Statistics/Spurious Associations
წყარო: http://news.bbc.co.uk/2/hi/science/nature/4209956.stm
წყარო: Hadley Wickham - ggplot2 / Elegant graphics for data analysis
ggplot2 არის R-ის პაკეტი - სტატისტიკური/მონაცემთა გრაფიკების შესაქმნელად.
მისი პროგრამული ენა დაფუძნებულია პაკეტ Graphics ენაზე (Wilkinson, 2005)
მნიშვნელოვანი ელემენტები:
x-y ღერძები(x-axis, y-axis)
“გეომები”(geom)
“ესთეტიკური” ატრიბუტები (aes())
ლეგენდა (theme)
წყარო: https://rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf
სამუშაო მისამართის განსაზღვრა
setwd()
setwd("D:\\R\\R\\R_Introductory_Workshops_Geolab\\ggplot2")
პაკეტის ჩამოტვირთვა
install.packages("ggplot2")
ბიბლიოთეკის გამოძახება
library(ggplot2)
მონაცემთა ნაკრების შემოტანა. diamond dataset - შეიცავს ინფორმაციას ფასებისა და ხარისხის შესახებ 54 000 ჩანაწერზე; ხარისხობრივი ინფორმაცია: carat, cut, colour, clarity; ფიზიკური საზომები: depth, table, x, y, z
d <- ggplot(diamonds)
d <- data.frame(diamonds)
d <- diamonds
d
შემთხვევითი შერჩევა
dsmall <- diamonds[sample(nrow(diamonds), 100), ]
საბაზისო გამოყენება - x-y ღერძები და კოორდინატები
ggplot(data = d, aes(x = carat, y = price)) + geom_point()
ggplot() + geom_point(data = d, aes(x = carat, y = price))
ggplot(d) + geom_point(aes(carat, price))
log()
ggplot(data = d, aes(log(carat), log(price))) + geom_point()
ცვლადების კომბინაცია - წრფივი ურთიერთკავშირი მოცულობასა და წონას შორის
ggplot(data = d, aes(carat, x * y * z)) + geom_point()
ფერი, ზომა, ფორმა და სხვა “ესთეტიური” ატრიბუტები - როგორც დამატებითი ინფორმაცია
ggplot(data = d, aes(carat, price)) + geom_point(aes(colour = color)) # ფერები კატეგორიების საჩვენებლად
ggplot(data = dsmall, aes(carat, price)) + geom_point(aes(colour = color))
ggplot(data = d, aes(carat, price)) + geom_point(aes(shape = cut)) # ფორმა კატეგორიების საჩვენებლად
ggplot(data = dsmall, aes(carat, price)) + geom_point(aes(shape = cut))
ggplot(data = dsmall, aes(carat, price)) + geom_point(aes(colour = color, size = 1)) # ზომა
ggplot(data = d, aes(carat, price)) + geom_point(alpha = 0.1) # 1/10
ggplot(data = d, aes(carat, price)) + geom_point(alpha = 0.01) # 1/100
ggplot(data = d, aes(carat, price)) + geom_point(alpha = 0.005) # 1/200
smoother
ggplot(data = d, aes(carat, price)) + geom_point() + geom_smooth()
ggplot(data = dsmall, aes(carat, price)) + geom_point() + geom_smooth()
ggplot(data = dsmall, aes(carat, price)) + geom_point() + geom_smooth(span = 0.2) # ტალღისეურობის კონტროლი "span' პარამეტრით (მეტისმეტად ტალღისებური 0 - და არც ისე ტალღისებური 1)
facets (facet_grid&facet_wrap)
ggplot(data = d, aes(carat, price)) + geom_point() +
facet_wrap(~cut)
plot
dplot <- ggplot(data = d, aes(carat, price)) + geom_point(aes(colour = cut)) + facet_wrap(~cut)
dplot
ლეგენდა
dplot_1 <- dplot +
labs(title = "ბრილიანტის მაჩვენებლების შეფასება",
subtitle = "ბრილიანტის დამუშავების ხარისხი, კარატი და ფასი",
caption = "წყარო: ggplot2, ღია მონაცემთა ბაზა") +
xlab("კარატი") + ylab("ფასი") +
theme(
plot.title = element_text(colour = "black", size = 14, face = "bold"),
plot.subtitle = element_text(colour = "black", size = 12),
plot.caption = element_text(colour = "black", size = 10, face = "italic", hjust = 1),
strip.text = element_text(size = 10, face = "bold"),
axis.text.x = element_text(size = 8),
axis.text.y = element_text(size = 8),
legend.position = "bottom",
legend.text = element_text(size = 12),
legend.justification = 0
) +
scale_color_discrete(name = "დამუშავების ხარისხი"
d$cut <- factor(d$cut, levels = c("Fair", "Good", "Very Good", "Premium", "Ideal"),
labels = c("საშუალო", "კარგი", "ძალიან კარგი", "უმაღლესი", "იდეალური"))
dplot_1
პლოტის შენახვა
ggsave("dplot_1.png", width = 29.7, height = 21, units = "cm")